package com.yin.springboot.favorite.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yin.springboot.favorite.entity.Fav;
import com.yin.springboot.favorite.mapper.FavMapper;
import com.yin.springboot.favorite.service.IFavService;
import org.springframework.stereotype.Service;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author Yin
 * @since 2025-08-16
 */
@Service
public class FavServiceImpl extends ServiceImpl<FavMapper, Fav> implements IFavService {
    @Override
    public void add(Fav fav) {
        // TODO 使用JSOUP 读取网页内容，获取简介名称分类
//        String addr = fav.getAddr();
//        if (addr != null) {
//            try {
//                Document doc = Jsoup.connect(addr).get();
//                fav.setName(doc.title());
//                fav.setIntro(doc.select("meta[name=description]").attr("content"));
//                fav.setImage(doc.select("meta[property=og:image]").attr("content"));
//            } catch (IOException e) {
//                throw new BizException("获取连接信息失败，请联系管理员", e);
//            }
//        }
//        System.out.println(fav);
//        throw new BizException("添加失败");
        // 判断字段输入
//        Utils.checkEmpty(fav.getName(), "请输入连接名称");
//        Utils.checkEmpty(fav.getAddr(), "请输入连接地址");
//        Utils.checkEmpty(fav.getIntro(), "请输入网站简介");
//        Utils.check(fav.getName().length() < 2, "连接名称不能少于2个字符");
//        Utils.check(!fav.getAddr().startsWith("http"), "地址格式不正确");
//
//        SqlSession session = MyBatisUtil.getSession(false);
//        try {
//            FavMapper favMapper = session.getMapper(FavMapper.class);
//            TagMapper tagMapper = session.getMapper(TagMapper.class);
//            TagFavMapper tagFavMapper = session.getMapper(TagFavMapper.class);
//            // 添加 fav 记录
//            favMapper.insert(fav);
//            // 添加 tag 记录
//            if (fav.getTags().trim().length() > 0) {
//                String[] tags = fav.getTags().split("[;,；，]+");
//                for (String tagStr : tags) {
//                    LambdaQueryWrapper<Tag> lqw = new LambdaQueryWrapper<>();
//                    lqw.eq(Tag::getName, tagStr);
//                    Tag tag = tagMapper.selectOne(lqw);
//                    if (tag == null) {
//                        tag = new Tag();
//                        tag.setName(tagStr);
//                        tagMapper.insert(tag);
//                    }
//                    // 添加 tag_fav 记录
//                    TagFav tagFav = new TagFav();
//                    tagFav.setTid(tag.getId());
//                    tagFav.setFid(fav.getId());
//                    tagFavMapper.insert(tagFav);
//                }
//            }
//            session.commit();
//        } catch (Exception e) {
//            session.rollback();
//            throw new BizException("添加连接失败，请联系管理员", e);
//        } finally {
//            session.close();
//        }



    }

    @Override
    public Fav find(int id) {
        return baseMapper.selectById(id);
    }
}
